Apple II
Technical Notes
_____________________________________________________________________________
                                                  Developer Technical Support


Apple II Miscellaneous
#8:    Pascal 1.1 Firmware Protocol ID Bytes

Revised by:    Matt Deatherage                                  November 1988
Written by:    Cameron Birse                                    December 1986

This Technical Note documents the Pascal 1.1 Firmware Protocol ID bytes for 
Apple II peripheral cards and ports.
_____________________________________________________________________________


Background

Apple II Pascal 1.1 introduced a firmware protocol called, not surprisingly, 
the Pascal 1.1 Firmware Protocol.  A card following this protocol could be 
identified by the following ID bytes, where n is the slot in which the card 
resides:

Address    Value   Definition
$Cn05       $38    ID byte (from Pascal 1.0)
$Cn07       $18    ID byte (from Pascal 1.0)
$Cn0B       $01    Generic signature of cards with Pascal 1.1 Protocol
$Cn0C       $ci    Device signature byte

$Cn0C was interpreted as two nibbles.  The high-order nibble, c, was defined 
as the device signature.  This signature was a pre-defined value determining 
what kind of device was connected (i.e., printer, modem, joystick, clock, 
etc.).  The low-order nibble, i, was defined as a unique identifier, so you 
could tell one printer from another, for example.

Developer Technical Support no longer maintains a list of assignments for the 
i nibble in this protocol.  Since, by definition, the Pascal 1.1 Protocol only 
has room for 16 uniquely identified devices of each signature, it is easy to 
see that the Apple II family has outgrown the definition.

Following is a table which lists the values of the Pascal 1.1 Firmware 
Protocol ID bytes for some Apple products which follow the protocol.  Previous 
versions of this Note listed ID bytes for products which did not follow the 
protocol.  Do not attempt to identify devices which do not follow the 
protocol by checking these ID bytes.  This method will not work and should be 
avoided.

For example, trying to conclusively identify a 3.5" disk drive, SCSI hard 
drive, memory expansion card, or other SmartPort device using these ID bytes 
could be disastrous.  For any SmartPort device, you should look for the ProDOS 
Block Device ID bytes ($Cn01 = $20, $Cn03 = $00, $Cn05 = $03), then look for 
the additional SmartPort ID byte ($Cn07 = $00).  Once you have identified 
SmartPort, you should make a SmartPort STATUS call to determine the nature and 
types of connected devices.  By this definition, ProDOS block devices and 
SmartPort devices cannot follow the Pascal 1.1 Firmware Protocol.


Pascal 1.1 Devices

                                    $Cn05    $Cn07    $Cn0B    $Cn0C
Apple II Peripheral Cards
Super Serial Card (or port)          $38      $18      $01      $31
Apple 80 Column Card                 $38      $18      $01      $88
Apple II Mouse Card                  $38      $18      $01      $20

Apple IIc Ports
1st version $FBBF = $FF
Slot 1 (Serial Port)                 $38      $18      $01      $31
Slot 2 (Serial Port)                 $38      $18      $01      $31
Slot 3 (80 Columns)                  $38      $18      $01      $88
Slot 4 (Mouse)                       $38      $18      $01      $20 

2nd version $FBBF = $00
Slot 1 (Serial Port)                 $38      $18      $01      $31
Slot 2 (Serial Port)                 $38      $18      $01      $31
Slot 3 (80 Columns)                  $38      $18      $01      $88
Slot 4 (Mouse)                       $38      $18      $01      $20 
Slot 7 (AppleTalk)                   $38      $18      $01      $31

3rd version $FBBF = $03, 4th version $FBBF = $04, and 5th version $FBBF 
= $05
Slot 1 (Serial Port)                 $38      $18      $01      $31
Slot 2 (Serial Port)                 $38      $18      $01      $31
Slot 3 (80 Columns)                  $38      $18      $01      $88
Slot 7 (Mouse)                       $38      $18      $01      $20

Apple IIGS Ports (ROM 1.0 and 2.0)
Slot 1 (Serial Port)                 $38      $18      $01      $31
Slot 2 (Serial Port)                 $38      $18      $01      $31
Slot 3 (80 Columns)                  $38      $18      $01      $88
Slot 4 (Mouse Port)                  $38      $18      $01      $20 
Slot 7 (AppleTalk)                   $38      $18      $01      $31
  

ProDOS and SmartPort Devices

                                    $Cn01    $Cn03    $Cn05    $Cn07
Generic ProDOS Block Device          $20      $00      $03      $xx
SmartPort Device                     $20      $00      $03      $00

